package com.bblocks.communityInfo.client;



import io.swagger.v3.oas.annotations.media.Schema;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;

@Schema(description="AppProdDto商品")
public class AppProdDto implements Serializable{
	private static final long serialVersionUID = 5049919089101634020L;

	/** 商品唯一ID */
	@Schema(description=" 商品唯一ID")
	private Long prodId;
	
	/** 商品名称 */
	@Schema(description="商品名称")
	private String name;

	@Schema(description="卖点")
	private String brief;

	/** 商品图片 */
	@Schema(description="商品图片")
	private String pic;
	
	/** 商品现价 */
	@Schema(description="商品现价")
	private Double cash;
	
	/** 商品价格 */
	@Schema(description="商品价格(为0or为空则不显示划线价)")
	private Double price;

	@Schema(description="活动价(可能为空)")
	private Double activityPrice;

	/** 已售商品数量 */
	@Schema(description="已售商品数量")
	private Long buys;
	
	/** 商品评论数 */
	@Schema(description="商品评论数")
	private Long comments;

	@Schema(description="查看数量")
	private Long views;
	
	/** 商品状态   1 正常   其他均为下线**/
	@Schema(description="商品状态   1 正常   其他均为下线")
	private Integer status;	
	
	/** 商品类型，P.普通商品，G:团购商品，S:二手商品，D:打折商品. */
	@Schema(description="商品类型，P.普通商品，G:团购商品（or拼团的），S:二手商品，D:打折商品,为空也为普通商品")
	private String prodType;
	
	/** 店铺类型0.专营店1.旗舰店2.自营店**/
//	@Schema(description="店铺类型0.专营店1.旗舰店2.自营店")
	@Schema(description="店铺类型0.专营店1.旗舰店2.自营入库 3.买断 4.自营不入库")
	private Integer shopType;

	/** */
	@Schema(description="是否在app端显示原价 0 不显示，1显示 ")
	protected Integer isShow;

	@Schema(description="尚新价信息，String 类型，根据逗号分隔，存储 priceLabel id ")
	protected String priceLabelJson;

	@Schema(description = "尚新价标签列表")
	protected List<AppProdPriceLabelDto> prodPriceLabels;
	/*
	 * 商品标签
	 **/
	@Schema(description="商品标签集合")
	private List<ProdTagDto> prodTagDtos;

	//@Schema(description="分销利润率，如1；则为1%（可能为空）")
	//private Integer distributionRate;
	//@Schema(description="分销金额，如1；则为1元（肯定有）")
	//private BigDecimal distributionAmt;

	/** 商家ID **/
	@Schema(description="店铺ID")
	private  Long shopId;

	/** 商家ID **/
	@Schema(description="店铺名")
	private  String shopName;


	@Schema(description="是否支持分销:1=支持(具体值为firstLevelRate),")
	private Integer supportDist;
	@Schema(description="分销比例(如果分销的话),例如：10%，返回10")
	private  Double firstLevelRate;
	/** 商品Banner */
	@Schema(description="商品Banner")
	private String bannerUrl;


	@Schema(description="所属微店的状态：1=上架，2=下架，0=删除/无(空也无)")
	private Integer optType;

	@Schema(description="活动ID(可能为空，目前主要是团购)")
	private Long activityId;


	/** 商品图片集合 **/
	@Schema(description="商品图片集合")
	private List<String> prodPics;

	/**
	 * 多个店内分类()
	 */
	@Schema(description="店铺分类（n级）")
	private Collection shopCategorys;


	@Schema(description="系统分类（多级=3）")
	private Collection categorys;

	@Schema(description="限購城市，多個逗号分割(0表示不限)")
	private String limitCitys;

	/**
	 * 角色(C段)邀请比例(比例)
	 */
	@Schema(description="角色(C段)邀请比例(比例)")
	private BigDecimal roleInviteRate;
	/**
	 * 带客状态:0=申请中，1=通过，2=拒绝，-1=初始
	 */
	@Schema(description="带客状态:0=申请中，1=通过，2=拒绝，-1=初始")
	private Integer roleInviteState;

	@Schema(description="商品星级评分, 最高5分, 如果为空或者为0, 使用时需要根据需求指定一个数值")
	private Double reviewScores;

	@Schema(description="商品类型名称")
	private String categoryName;

	public Double getReviewScores() {
		return reviewScores;
	}

	public void setReviewScores(Double reviewScores) {
		this.reviewScores = reviewScores;
	}

	public String getCategoryName() {
		return categoryName;
	}

	public void setCategoryName(String categoryName) {
		this.categoryName = categoryName;
	}

	public Long getProdId() {
		return prodId;
	}

	public void setProdId(Long prodId) {
		this.prodId = prodId;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPic() {
		return pic;
	}

	public void setPic(String pic) {
		this.pic = pic;
	}

	public Double getCash() {
		return cash;
	}

	public void setCash(Double cash) {
		this.cash = cash;
	}

	public Double getPrice() {
		return price;
	}

	public void setPrice(Double price) {
		this.price = price;
	}
	
	public Long getBuys() {
		return buys;
	}

	public void setBuys(Long buys) {
		this.buys = buys;
	}

	public Long getComments() {
		return comments;
	}

	public void setComments(Long comments) {
		this.comments = comments;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public String getProdType() {
		return prodType;
	}

	public void setProdType(String prodType) {
		this.prodType = prodType;
	}

	public Integer getShopType() {
		return shopType;
	}

	public void setShopType(Integer shopType) {
		this.shopType = shopType;
	}

	public Integer getIsShow() {
		return isShow;
	}

	public void setIsShow(Integer isShow) {
		this.isShow = isShow;
	}

	public List<ProdTagDto> getProdTagDtos() {
		return prodTagDtos;
	}

	public void setProdTagDtos(List<ProdTagDto> prodTagDtos) {
		this.prodTagDtos = prodTagDtos;
	}

	public String getPriceLabelJson() {
		return priceLabelJson;
	}

	public void setPriceLabelJson(String priceLabelJson) {
		this.priceLabelJson = priceLabelJson;
	}

	public List<AppProdPriceLabelDto> getProdPriceLabels() {
		return prodPriceLabels;
	}

	public void setProdPriceLabels(List<AppProdPriceLabelDto> prodPriceLabels) {
		this.prodPriceLabels = prodPriceLabels;
	}

	@Override
	public String toString() {
		return "AppProdDto{" +
				"prodId=" + prodId +
				", name='" + name + '\'' +
				", pic='" + pic + '\'' +
				", cash=" + cash +
				", price=" + price +
				", buys=" + buys +
				", comments=" + comments +
				", status=" + status +
				", prodType='" + prodType + '\'' +
				", shopType=" + shopType +
				", isShow=" + isShow +
				", priceLabelJson='" + priceLabelJson + '\'' +
				", prodPriceLabels=" + prodPriceLabels +
				", prodTagDtos=" + prodTagDtos +
				'}';
	}

	public Double getActivityPrice() {
		return activityPrice;
	}

	public void setActivityPrice(Double activityPrice) {
		this.activityPrice = activityPrice;
	}



	public Long getShopId() {
		return shopId;
	}

	public void setShopId(Long shopId) {
		this.shopId = shopId;
	}

	public String getShopName() {
		return shopName;
	}

	public void setShopName(String shopName) {
		this.shopName = shopName;
	}

	public Collection getShopCategorys() {
		return shopCategorys;
	}

	public void setShopCategorys(Collection shopCategorys) {
		this.shopCategorys = shopCategorys;
	}



	public Double getFirstLevelRate() {
		return firstLevelRate;
	}

	public void setFirstLevelRate(Double firstLevelRate) {
		this.firstLevelRate = firstLevelRate;
	}

	public Integer getSupportDist() {
		return supportDist;
	}

	public void setSupportDist(Integer supportDist) {
		this.supportDist = supportDist;
	}

	public String getBannerUrl() {
		return bannerUrl;
	}

	public void setBannerUrl(String bannerUrl) {
		this.bannerUrl = bannerUrl;
	}

	public Integer getOptType() {
		return optType;
	}

	public void setOptType(Integer optType) {
		this.optType = optType;
	}

	public Long getViews() {
		return views;
	}

	public void setViews(Long views) {
		this.views = views;
	}

	public Long getActivityId() {
		return activityId;
	}

	public void setActivityId(Long activityId) {
		this.activityId = activityId;
	}

	public List<String> getProdPics() {
		return prodPics;
	}

	public void setProdPics(List<String> prodPics) {
		this.prodPics = prodPics;
	}

	public String getBrief() {
		return brief;
	}

	public void setBrief(String brief) {
		this.brief = brief;
	}

	public String getLimitCitys() {
		return limitCitys;
	}

	public void setLimitCitys(String limitCitys) {
		this.limitCitys = limitCitys;
	}

	public BigDecimal getRoleInviteRate() {
		return roleInviteRate;
	}

	public void setRoleInviteRate(BigDecimal roleInviteRate) {
		this.roleInviteRate = roleInviteRate;
	}

	public Integer getRoleInviteState() {
		return roleInviteState;
	}

	public void setRoleInviteState(Integer roleInviteState) {
		this.roleInviteState = roleInviteState;
	}

	public Collection getCategorys() {
		return categorys;
	}

	public void setCategorys(Collection categorys) {
		this.categorys = categorys;
	}
}
